# -*- coding: utf-8 -*-
# @version        : 1.0
# @Creaet Time    : 2021/10/19 15:47
# @File           : settings.py
# @IDE            : PyCharm
# @desc           : 主配置文件

import os
from utils.ini_oper import IniConfigSerializer

# 安全警告: 不要在生产中打开调试运行!
DEBUG = True

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

TEMP_DIR = os.path.join(BASE_DIR, "temp")

# 安全的随机密钥，该密钥将用于对 JWT 令牌进行签名
SECRET_KEY = 'vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=kbvqacjq75vzps$'

"""安全的随机密钥，该密钥将用于对服务系统标识进行签名"""
SYSTEM_KEY = "0CoJUm6Qywm6ts68"

"""
挂载静态目录，并添加路由访问，此路由不会在接口文档中显示
STATIC_ENABLE：是否启用静态目录
STATIC_URL：路由访问
STATIC_ROOT：静态文件目录相对路径
官方文档：https://fastapi.tiangolo.com/tutorial/static-files/
"""
STATIC_ENABLE = True
STATIC_URL = "/static"
STATIC_ROOT = "./static"


"""
跨域解决
详细解释：https://cloud.tencent.com/developer/article/1886114
官方文档：https://fastapi.tiangolo.com/tutorial/cors/
"""
# 是否启用跨域
CORS_ORIGIN_ENABLE = True
# 只允许访问的域名列表，* 代表所有
ALLOW_ORIGINS = ["*"]
# 是否支持携带 cookie
ALLOW_CREDENTIALS = True
# 设置允许跨域的http方法，比如 get、post、put等。
ALLOW_METHODS = ["*"]
# 允许携带的headers，可以用来鉴别来源等作用。
ALLOW_HEADERS = ["*"]


"""
数据库配置项
连接引擎官方文档：https://www.osgeo.cn/sqlalchemy/core/engines.html
asyncmy Github：https://github.com/long2ice/asyncmy
utf8mb4
"""
# 获取数据库配置文件
DATABASE_CONFIG_FILE = os.path.join(BASE_DIR, "application", "conf", "databases.ini")
SQLALCHEMY_DATABASE_URL = IniConfigSerializer(DATABASE_CONFIG_FILE).get_configs()


"""
中间件配置
"""
MIDDLEWARES = [
    "core.middleware.register_middleware",
]
